home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / example / acc.cc next >
C/C++ Source or Header  |  1993-05-02  |  1KB  |  72 lines

  1. #include <gem++.h>
  2. #include "acc.h"
  3.  
  4.  
  5. /* Gcc convention for accessories */
  6.  
  7. extern int _app;
  8. char _stack_heap[8192];
  9. void *_heapbase = (void *)_stack_heap;
  10. long _stksize = sizeof(_stack_heap);
  11.  
  12.  
  13. class MyDeskAccessory : public GEMdeskaccessory {
  14. public:
  15.     MyDeskAccessory(const GEMapplication& appl, GEMactivity& act, GEMrsc& rsc, GEMformwindow& w) :
  16.         GEMdeskaccessory(appl,act,rsc.String(ACCNAME)),
  17.         window(w)
  18.     { }
  19.  
  20.     void Open()
  21.     {
  22.         window.Open();
  23.     }
  24.  
  25.     void Close()
  26.     {
  27.         window.BecomeDeleted();
  28.     }
  29.  
  30. private:
  31.     GEMwindow& window;
  32. };
  33.  
  34. class MyMenu : public GEMmenu {
  35. public:
  36.     MyMenu(GEMactivity& act, GEMrsc& rsc, GEMformwindow& w) :
  37.         GEMmenu(act,rsc,MENU),
  38.         window(w)
  39.     { }
  40.  
  41.     virtual GEMfeedback DoItem(int item, const GEMevent&)
  42.     {
  43.         switch (item) {
  44.          case DOOPEN:
  45.             window.Open();
  46.         break; case DOQUIT:
  47.             return EndInteraction;
  48.         }
  49.         return ContinueInteraction;
  50.     }
  51.  
  52. private:
  53.     GEMwindow& window;
  54. };
  55.  
  56.  
  57. main()
  58. {
  59.     GEMapplication appl;
  60.     GEMactivity activity;
  61.     GEMrsc rsc("acc.rsc",8,16);
  62.     GEMformwindow sayhello(activity,rsc,SAYHELLO);
  63.  
  64.     if (_app) {
  65.         MyMenu menu(activity,rsc,sayhello);
  66.         activity.Do();
  67.     } else {
  68.         MyDeskAccessory da(appl,activity,rsc,sayhello);
  69.         activity.Do();
  70.     }
  71. }
  72.